It is sometimes desirable to implement a multiplexer using a general purpose device that can be used to implement other devices in addition to a multiplexer. For example, Logic Array Blocks (LABs) have been used to implement a multiplexer.
Using LABs to implement a multiplexer suffers from some disadvantages. First, implementing a multiplexer using LABs consumes a relatively large chip area. For example, implementing a 32×1 multiplexer requires 3 to 4 LABs. Second, a multiplexer implemented using LABs is relatively slow. Implementation of a multiplexer using LABs involves passing through numerous logic levels before generating an output, thus slowing down the process.
The present invention addresses these and other disadvantages of existing implementations of multiplexers.